Information processing apparatus, information processing method, and transmission medium

ABSTRACT

An information processing apparatus and an information processing method adapted for representing objects of various shapes as two-dimensional graphic or three-dimensional graphic to change corresponding object so as to take various states within three-dimensional virtual space. Among prepared plural three-dimensional attitudes of object, attitude A 0  is selected as reference attitude. Vectors serving as rotation axes when rotation is made from the reference attitude to attitudes A 1 , A 2  are multiplied by their rotational angles as length, and are multiplied by weighting coefficients corresponding to an input signal inputted by allowing user to operate an input unit. Further, those vectors are synthesized to thereby synthesize (generate) vector serving as new axis of rotation. By rotating the object in the state where that vector is caused to be axis of rotation and its length is caused to be rotation angle, target attitude An is obtained.

TECHNICAL FIELD

This invention relates to an information processing apparatus, aninformation processing method and a transmission medium, and moreparticularly to an information processing apparatus, an informationprocessing method and a transmission medium which are adapted tointerpolate at least three attitudes or more of object to therebyimprove degree of freedom of rotational operation of the object.

BACKGROUND ART

In information processing apparatuses such as computer game machine,etc., objects of various shapes (polygons) can be represented astwo-dimensional graphic or three-dimensional graphic to change, withinthree-dimensional virtual space, corresponding objects so as to takevarious states, i.e., to allow them to carry out animation.

In order to change a predetermined object from a predetermined attitudeto another attitude within the three-dimensional virtual space, it issufficient to rotate it by a predetermined angle with a predeterminedaxis being as center. As a method of carrying out processing to rotatesuch object with an arbitrary axis being as center, there has beenproposed a method disclosed in, e.g., the Japanese Laid Open ApplicationNo. 315171/1996 publication. In accordance with the method disclosed inthis publication, such an approach is employed as shown in FIG. 7 todetermine reference attitude (angle) A of an object 201, rotatedattitude (target attitude) B thereof and a predetermined axis ofrotation 202 to determine, on the assumption that the object 201 rotateswithin the range of 0 to θ around (about) the rotation axis with therotation axis being as center, rotation angle θd of object interpolatedwithin such a range to determine interpolation rotation matrix Rd byusing the rotation angle θd. A further approach is employed to dissolvethe determined interpolation rotation matrix Rd into angle data aroundrespective axes of X-axis, Y-axis and Z-axis of the three-dimensionalcoordinate system thus to calculate interpolation data.

Explanation will now be given in connection with a method of determiningrotation matrix when a predetermined object rotates from a referenceattitude with an arbitrary axis being as center. Rotation around (about)the origin of the three-dimensional coordinate system is represented byrotation matrix of 3×3. When it is now assumed that the coordinatesystem B is the coordinate system in which the coordinate system A isrotated by rx degrees around the X-axis, is rotated by ry degrees aroundthe Y-axis and is rotated by rz degrees around the Z-axis in order, therotation matrix R is represented by the following formula (1).$\begin{matrix}{R = {\begin{pmatrix}{\cos ({rz})} & {- {\sin ({rz})}} & 0 \\{\sin ({rz})} & {\cos ({rz})} & 0 \\0 & 0 & 1\end{pmatrix}\begin{pmatrix}{\cos ({ry})} & 0 & {\sin ({ry})} \\0 & 1 & 0 \\{- {\sin ({ry})}} & 0 & {\cos ({ry})}\end{pmatrix}\begin{pmatrix}1 & 0 & 0 \\0 & {\cos ({rx})} & {- {\sin ({rx})}} \\0 & {\sin ({rx})} & {\cos ({rx})}\end{pmatrix}}} & (1)\end{matrix}$

It is further assumed that this formula (1) is represented by theformula (2) expressed below. $\begin{matrix}{R = \begin{pmatrix}R_{11} & R_{12} & R_{13} \\R_{21} & R_{22} & R_{23} \\R_{31} & R_{32} & R_{33}\end{pmatrix}} & (2)\end{matrix}$

In this case, transposed matrix R^(T) of this rotation matrix R isrepresented by the formula (3) expressed below. $\begin{matrix}\begin{matrix}{R^{T} = \quad \begin{pmatrix}R_{11} & R_{21} & R_{31} \\R_{12} & R_{22} & R_{32} \\R_{13} & R_{23} & R_{33}\end{pmatrix}} \\{= \quad {\begin{pmatrix}1 & 0 & 0 \\0 & {\cos ({rx})} & {\sin ({rx})} \\0 & {- {\sin ({rx})}} & {\cos ({rx})}\end{pmatrix}\begin{pmatrix}{\cos ({ry})} & 0 & {- {\sin ({ry})}} \\0 & 1 & 0 \\{\sin ({ry})} & 0 & {\cos ({ry})}\end{pmatrix}}} \\{\quad \begin{pmatrix}{\cos ({rz})} & {\sin ({rz})} & 0 \\{- {\sin ({rz})}} & {\cos ({rz})} & 0 \\0 & 0 & 1\end{pmatrix}}\end{matrix} & (3)\end{matrix}$

In this case, since the formula expressed below holds,

R ^(T) R=1  (4)

this rotation matrix R is orthogonal matrix. Conversely, orthogonalmatrix where |R|=1 is represented by the formula (4). This matrix isrotation matrix. Generally, it is known that the orthogonal matrix canbe normalized as indicated below by using other orthogonal matrix T.$\begin{matrix}{{T^{- 1}{RT}} = \begin{pmatrix}1 & 0 & 0 \\0 & {\cos \quad \theta} & {\sin \quad \theta} \\0 & {{- \sin}\quad \theta} & {\cos \quad \theta}\end{pmatrix}} & (5)\end{matrix}$

When arbitrary two rotation matrices A, B exist, R is put (represented)as the following formula (6).

R=A−1B  (6)

When this formula (6) is used, the above mentioned formula (5) can beexpressed as below. $\begin{matrix}{{T^{- 1}A^{- 1}{BT}} = \begin{pmatrix}1 & 0 & 0 \\0 & {\cos \quad \theta} & {\sin \quad \theta} \\0 & {{- \sin}\quad \theta} & {\cos \quad \theta}\end{pmatrix}} & (7)\end{matrix}$

When rotation matrix B is determined from this formula (7), it isrepresented by the formula (8) expressed below. $\begin{matrix}{B = {{{AT}\begin{pmatrix}1 & 0 & 0 \\0 & {\cos \quad \theta} & {\sin \quad \theta} \\0 & {{- \sin}\quad \theta} & {\cos \quad \theta}\end{pmatrix}}T^{- 1}}} & (8)\end{matrix}$

In this case, when angle is changed within the range from 0 to θ, thepreviously described coordinate system (attitude) represented by Arotates around (about) a predetermined axis, resulting in coordinatesystem (attitude) of B. When orthogonal matrix of T is found out in thisway, interpolation can be made between arbitrary two coordinate systemsby rotation around (about) certain one rotation axis.

A method of finding out this orthogonal matrix T will now be described.Let find out vector which is eigen (intrinsic) vector of rotation matrixR, which satisfies the following relational expression, and has absolutevalue of 1.

Rt=t  (9)

When E is now assumed to be unit matrix, the following relationalexpression holds.

(R−E)t=0  (10)

Accordingly, t is orthogonal to component vector of matrix (R−E).

Further, linearly independent two (sets of) vectors of the matrix (R−E)are found out to provide outer product thereof. This vector isnormalized. The normalized vector thus obtained is assumed to be t₁.Then, vector orthogonal to t₁ is found out. As this vector, either oneof vectors of matrix (R−E) which generates t₁ may be used. This vectoris also normalized. The normalized vector thus obtained is assumed to bet₂. Then, outer product of t₁ and t₂ is provided. The vector thusobtained is assumed to be t₃. Since these t₁ to t₃ all have absolutevalues of 1 and are orthogonal to each other, matrix (t₁ t₂ t₃) isorthogonal matrix.

Assuming now that the matrix (t₁ t₂ t₃) is orthogonal matrix T, the leftside of the formula (5) can be represented as the formula (11) indicatedbelow. $\begin{matrix}\begin{matrix}{{T^{- 1}{RT}} = {\begin{pmatrix}t_{1} & t_{2} & t_{3}\end{pmatrix}^{- 1}{R\begin{pmatrix}t_{1} & t_{2} & t_{3}\end{pmatrix}}}} \\{= {\begin{pmatrix}t_{1}^{T} \\t_{2}^{T} \\t_{3}^{T}\end{pmatrix}\quad {R\begin{pmatrix}t_{1} & t_{2} & t_{3}\end{pmatrix}}}} \\{= \begin{pmatrix}{t_{1}^{T}{Rt}_{1}} & {t_{1}^{T}{Rt}_{2}} & {t_{1}^{T}{Rt}_{3}} \\{t_{2}^{T}{Rt}_{1}} & {t_{2}^{T}{Rt}_{2}} & {t_{2}^{T}{Rt}_{3}} \\{t_{3}^{T}{Rt}_{1}} & {t_{3}^{T}{Rt}_{2}} & {t_{3}^{T}{Rt}_{3}}\end{pmatrix}}\end{matrix} & (11)\end{matrix}$

In this case, t₁ to t₃ can be represented by the formula (12) expressedbelow by using the formula (9).

t ₁ ^(T) Rt ₁ =t ₁ ^(T) t ₁

t ₂ ^(T) Rt ₁ =t ₂ ^(T) t ₁

t ₃ ^(T) Rt ₁ =t ₃ ^(T) t ₁  (12)

By using these relational expressions, the formula (11) can berepresented by the formula (13) expressed below. $\begin{matrix}{{T^{- 1}{RT}} = \begin{pmatrix}1 & 0 & 0 \\0 & {t_{2}^{T}{Rt}_{2}} & {t_{2}^{T}{Rt}_{3}} \\0 & {t_{3}^{T}{Rt}_{2}} & {t_{3}^{T}{Rt}_{3}}\end{pmatrix}} & (13)\end{matrix}$

Then, respective elements (components) of the formula (13) are put asindicated by the formula (14) expressed below. $\begin{matrix}{{T^{- 1}{RT}} = \begin{pmatrix}1 & 0 & 0 \\0 & A & B \\0 & C & D\end{pmatrix}} & (14)\end{matrix}$

In this case, since T and R are both orthogonal matrices, T⁻¹RT is alsoorthogonal matrix. The following relational expressions hold.

A ² +C ²=1  (15)

B ² +D ²=1  (16)

A ² +B ²=1  (17)

C ² +D ²=1  (18)

AB+CD=0  (19)

AC+BD=0  (20)

AD−BC=1  (21)

Subtraction of the formula (18) from the formula (15) gives

A ² −D ²=0, A=±D

Further, when A=−D, substitution thereof into the formula (19) gives

D(C−B)=0

Thus, D=0 or B=C. Substitution of D=0 into the formula (21) gives

−BC=1

Further, subtraction of the formula (17) from the formula (15) gives

B=±C

Thus, the following relational expression is obtained.

B=−C=±1

On the other hand, substitution of A=−D, B=C into the formula (21) gives

−D ² −C ²=1

This is contradictory. Therefore, the following relational expression isobtained.

A=D=0, B=−C=±1

Now, when A=D, substitution of this relational expression into theformula (19) gives

D(B+C)=0

Thus, D=0 or B=−C is obtained.

When D=0, the relational expression B=−C=±1 is similarly obtained.

Further, when D≠0, B=−C. Therefore, in either case, the followingrelational expressions are obtained.

A=D

B=−C

 C ² +D ²=1

Thus, the above-mentioned formula (5) holds.

In this way, the orthogonal matrix T which satisfies the formula (5) canbe found out. Further, rotation matrix Rd when rotation is made byrotation angle θd from the reference attitude with an arbitrary axisbeing as center can be determined from the formula (5) in a mannerindicated below. ${Rd} = {{T\begin{pmatrix}1 & 0 & 0 \\0 & {\cos \quad \theta \quad d} & {\sin \quad \theta \quad d} \\0 & {{- \sin}\quad \theta \quad d} & {\cos \quad \theta \quad d}\end{pmatrix}}T^{- 1}}$

By using such a method, interpolation processing with respect torotation of object is carried out.

However, in the conventional interpolation processing with respect torotation of object, since interpolation is carried out only between twopoints (two attitudes), limitation takes place in the degree of freedomof motion (movement) of object. As a result, it is difficult to realizenatural (smooth) change of attitude.

In addition, operation (computation) of the rotation matrix becomescomplicated as described above.

DISCLOSURE OF THE INVENTION

This invention has been proposed in view of such circumstances and itsobject is to provide a novel information processing apparatus, a novelinformation processing method and a novel transmission medium which arecapable of improving degree of freedom of rotation operation of object.

An information processing apparatus according to this inventioncomprises: selector means for selecting, as reference attitude, any oneof prepared plural attitudes of an object; first generating means forgenerating vectors serving as respective rotation axes for changing thereference attitude selected by the selector means into at least twoother attitudes or more; first calculating means for calculatingrotation angles when the object is changed from the reference attitudeto the other attitudes with the vectors generated by the firstgenerating means being as rotation axes; converting means for convertinglengths of the vectors into lengths corresponding to the rotation anglescalculated by the first calculating means; second generating means forsynthesizing the vectors of which lengths are converted by theconverting means to generate interpolation vector; second calculatingmeans for calculating length of the interpolation vector generated bythe second generating means; and third generating means for rotating thereference attitude of the object by angle corresponding to the lengthcalculated by the second calculating means with the interpolation vectorbeing as rotation axis to generate target attitude.

Moreover, an information processing method according to this inventioncomprises: a selection step of selecting, as reference attitude, any oneof prepared plural attitudes of an object; a first generation step ofgenerating vectors serving as respective rotation axes for changing thereference attitude selected by the selection step into at least twoother attitudes or more; a first calculation step of calculatingrotation angles when the object is changed from the reference attitudeto the other attitudes with the vectors generated at the firstgeneration step being as rotation axes; a conversion step of convertinglengths of the vectors into lengths corresponding to the rotation anglescalculated at the first calculation step; a second generation step ofsynthesizing the vectors of which lengths are converted at theconversion step to generate interpolation vector; a second calculationstep of calculating length of the interpolation vector generated at thesecond generation step; and a third generation step of rotating thereference attitude of the object by angle corresponding to the lengthcalculated at the second calculation step with the interpolation vectorbeing as rotation axis to generate target attitude.

Further, a transmission medium according to this invention is adapted sothat computer program is caused to undergo transmission, the computerprogram including: a selection step of selecting, as reference attitude,any one of prepared plural attitudes of an object; a first generationstep of generating vectors serving as respective rotational axes forchanging the reference attitude selected by the selection step into atleast two other attitudes or more; a first calculation step ofcalculating rotation angles when the object is changed from thereference attitude to the other attitudes with the vectors generated atthe first generation step being as rotation axes; a conversion step ofconverting lengths of the vectors into lengths corresponding to therotation angles calculated at the first calculation step; a secondgeneration step of synthesizing the vectors of which lengths areconverted at the conversion step to generate interpolation vector; asecond calculation step of calculating length of the interpolationvector generated at the second generation step; and a third generationstep of rotating the reference attitude of the object by anglecorresponding to the length calculated at the second calculation stepwith the interpolation vector being as rotation axis to generate targetattitude.

In the information processing apparatus, the information processingmethod and the transmission medium according to this invention, any oneof prepared plural attitudes of object is selected as referenceattitude. Vectors serving as respective rotation axes for changing theselected reference attitude into at least two other attitudes or moreare generated. Rotation angles when the object is changed from thereference attitude to the other attitudes with the generated vectorsbeing as rotation axes. Lengths of the vectors are converted intolengths corresponding to the rotational angles. The vectors of whichlengths are converted are synthesized so that interpolation vector isgenerated. Length of the generated interpolation vector is calculated.The reference attitude of the object is rotated by angle correspondingto the calculated length with the interpolation vector being as rotationaxis. Thus, target attitude is generated.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing an example of the configuration of aninformation processing apparatus according to this invention.

FIG. 2 is a flow chart for explaining the operation of the informationprocessing apparatus shown in FIG. 1.

FIG. 3 is a flow chart for explaining an example of multipleinterpolation processing of three-dimensional attitude of object.

FIG. 4 is a view for explaining rotation from reference attitude toother attitudes of object.

FIG. 5 is a view for explaining processing to generate (interpolation)vector serving as axis of rotation when rotation is made so that thereresults target attitude.

FIG. 6 is a view for explaining rotation from reference attitude totarget attitude of object.

FIG. 7 is a view for explaining an example of conventional interpolationprocessing of attitude of object.

BEST MODE FOR CARRYING OUT THE INVENTION

An information processing apparatus, an information processing methodand a transmission medium according to this invention will be describedbelow.

The information processing apparatus according to this inventioncomprises: selector means (e.g., step S101 of FIG. 3) for selecting, asreference attitude, any one of prepared plural attitudes of an object;first generating means (e.g., step S102 of FIG. 3) for generatingvectors serving as respective rotation axes for changing the referenceattitude selected by the selector means into at least two otherattitudes or more; first calculating means (e.g., step S103 of FIG. 3)for calculating rotation angles when the object is changed from thereference attitude to the other attitudes with the vectors generated bythe first generating means being as rotation axes; converting means(e.g., step S104 of FIG. 3) for converting lengths of the vectors intolengths corresponding to the rotation angles calculated by the firstcalculating means, second generating means (e.g., step S105 of FIG. 3)for synthesizing the vectors of which lengths are converted by theconverting means to generate interpolation vector; second calculatingmeans (e.g., step S106 of FIG. 3) for calculating length of theinterpolation vector generated by the second generating means; and thirdgenerating means (e.g., step S107 of FIG. 3) for rotating the referenceattitude of the object by angle corresponding to the length calculatedby the second calculating means with the interpolation vector being asrotation axis to generate target attitude.

Moreover, the information processing apparatus according to thisinvention further comprises input means (e.g., input unit 17 of FIG. 1)for inputting an input signal, and multiplier means (e.g., CPU 11 ofFIG. 1) for multiplying vectors generated by the first generating meansby weighting coefficients corresponding to input signal inputted by theinput means.

Further, the information processing apparatus according to thisinvention further comprises third calculating means (e.g., CPU 11 ofFIG. 1) for calculating rotation matrix for rotating, by a predeterminedangle θ, vector (x, y, z) serving as a predetermined rotation axis bythe following formula, $\begin{pmatrix}{{\left( {1 - {\cos \quad \theta}} \right)x^{2}} + {\cos \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){xy}} + {z\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){xz}} - {y\quad \sin \quad \theta}} \\{{\left( {1 - {\cos \quad \theta}} \right){xy}} - {z\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right)y^{2}} + {\cos \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){yz}} + {x\quad \sin \quad \theta}} \\{{\left( {1 - {\cos \quad \theta}} \right){xz}} + {y\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){yz}} + {x\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right)z^{2}} + {\cos \quad \theta}}\end{pmatrix}$

wherein the third generating means uses the rotation matrix calculatedby the third calculating means when interpolation attitude is generated.

Furthermore, the information processing apparatus according to thisinvention further comprises fourth generating means (e.g., step S101 ofFIG. 3) for generating arbitrary attitude as reference attitude.

The information processing apparatus according to this invention hasconfiguration as indicated by the block diagram shown in FIG. 1. In thisexample, the CPU 11 controls respective units (components) and carriesout multiple interpolation processing of attitude of object. Moreover,the CPU 11 includes a GTE (Geometry Transfer Engine) 12. This GTE 12carries out, in accordance with request from the CPU 11, geometryprocessing such as coordinate transform (conversion), light sourcecalculation, matrix operation (computation) or vector operation(computation), etc. with respect to model data of object. Further, amain bus 13 through which data transfer is carried out at relativelyhigh speed and a sub bus 14 through which data transfer is carried outat relatively low speed are connected to the CPU 11. Thus,transmission/reception of data can be carried out through these buses.

A CD-ROM drive 15 and an input device interface 16 are connected to thesub bus 14. The CD-ROM drive 15 reads out, by instruction of the CPU 11,various data or programs from CD-ROM as recording medium attachedthereto. The input device interface 16 accepts (receives) input signalfrom the input unit 17, e.g., control pad to output it to the CPU 11through the sub bus 14.

A main memory 18 and a GPU (Graphic Processing Unit) 19 are connected tothe main bus 13. The main memory 18 stores data which has been read outfrom the CD-ROM drive 15, data as operation (computed) result of the CPU11, and the like. The GPU 19 reads out model data of object to bedisplayed from the main memory 18 to carry out rendering processing tostore the processed model data of object into a VRAM (Video RandomAccess Memory) 20. The GPU 19 further reads out data stored in the VRAM20 to output it to a D/A converter 21. The VRAM 20 includes frame memoryand Z buffer which are not shown, and serves to allow the frame bufferto store data of picture (object) displayed on screen and to allow the Zbuffer to store data of object located at the foreground of objectsdisplayed on the screen.

The D/A converter 21 converts data outputted from the GPU 19 fromdigital signal to analog signal to output it to a NTSC (NationalTelevision System Committee) encoder 22. The NTSC encoder 22 synthesizescolor signal and luminance signal from the D/A converter 21 to output itto monitor (not shown) as video signal (composite signal) of the NTSCsystem.

The operation of the information processing apparatus will now bedescribed with reference to the flow chart shown in FIG. 2. Initially,at step S11, the CPU 11 reads out, from (the CD-ROM of) the CD-ROM drive15, data of object to be processed to read it into the main memory 18.At step S12, the CPU 11 carries out multiple interpolation processing ofobject (of which detail will be described later) by using weightingcoefficients inputted by allowing user to operate the input unit 17.

The GTE 12 transforms (converts) data of object which has beenmultiple-interpolated by the CPU 11 into three-dimensional coordinatedata within three-dimensional virtual space at step S13, and carries outperspective transform (conversion) of the three-dimensional coordinatedata transformed (converted) at the step S13 into two-dimensionalcoordinate data at step S14. Namely, three-dimensional coordinates ofobject placed (located) within the virtual space are transformed(converted) into coordinates in the state viewed from two-dimension (thestate viewed on the monitor). Subsequently, at step S15, the GTE 12calculates luminance of data of object from position and direction ofthe light source placed (located) within the virtual space.Subsequently, at step S16, the GTE 12 outputs processed data of objectto the GPU 19.

The GPU 19 carries out shading with respect to data of object from theGTE 12 at step S17, and describes (depicts) the data of object thusobtained into the frame buffer of the VRAM 20 as pixel data at step S18.

Multiple interpolation processing of three-dimensional attitude ofobject at the step S12 will now be described in detail with reference tothe flow chart of FIG. 3. In the embodiment of this invention, at leastthree attitudes (angles) are assumed to be prepared with respect to oneobject. In this example, three attitudes A0 to A2 of an object 31 asshown in FIG. 4 are assumed to be prepared in the main memory 18.Initially, at step S101, the CPU 11 selects one attitude (e.g., attitudeA0) as reference attitude from these three attitudes. It is to be notedthat while reference attitude is selected from prepared attitudes inthis case, an approach may be employed to generate new attitude toselect it as reference attitude.

At step S102, the CPU 11 calculates vectors al and a2 serving as axes ofrotation when the object is changed from the attitude A0 to therespective attitudes A1 and A2 as shown to allow their lengths (absolutevalues) to be 1. Since the method of calculating these vectorscorresponds to that indicated in the prior art, its detailed explanationis omitted.

Subsequently, the CPU 11 determines rotation angles θ1 and θ2 ofrespective rotation axes (vectors) a1 and a2 when the object is changedfrom the reference attitude A0 to the attitude A1 and the attitude A2 atstep S103. Since such calculating method corresponds to the calculatingmethod for θ represented by the previously described formula (5), itsdetailed explanation is omitted.

Further, at step S104, the CPU 11 multiples respective rotation axes a1,a2 by rotation angles θ1, θ2 as their lengths to further respectivelymultiply them by weighting coefficients p1, p2 corresponding to inputsignal from the input unit 17 by user. Thus, the relational expressionswith respect to the rotation axes a1, a2 are respectively given by theformulas (22) and (23) expressed below.

p 1×θ1×{right arrow over (a+L 1)}  (22)

p 2×θ2×{right arrow over (a+L 2)}  (23)

Further, at step S105, the CPU 11 interpolates (synthesizes) thesevectors as shown in FIG. 5 to thereby generate vector av expressed bythe following formula (24).

{right arrow over (a+L ν)}=(p 1×θ1×{right arrow over (a+L 1)})+(p2×θ2×{right arrow over (a+L 2)})  (24)

At step S106, length θv of this vector av is calculated. The processingoperation then proceeds to step S107, at which the CPU 11 rotatesreference attitude A0 of the object 31 in the state where vector av iscaused to be axis of rotation and length θv of the vector av is causedto be rotation angle as shown in FIG. 6 to thereby obtain (determine)new attitude An of the object 31.

Here, rotation axis av of the object 31 is put as av=(x, y, z) forsimplicity and the object is assumed to be rotated by rotation angle θaround (about) this rotation axis. Determination of rotation matrix M atthis time will be described below. Matrix E expressed by the followingformula (25) satisfies the condition that respective columns andrespective rows are unit vector, and the respective columns areorthogonal to each other and the respective rows are also orthogonal toeach other. $\begin{matrix}{E = \begin{pmatrix}x & y & z \\e & f & g \\h & j & k\end{pmatrix}} & (25)\end{matrix}$

The transposed matrix F of the formula (25) is represented by theformula (26) expressed below. $\begin{matrix}{F = \begin{pmatrix}x & e & h \\y & f & j \\z & g & k\end{pmatrix}} & (26)\end{matrix}$

Moreover, rotation matrix R for rotating a predetermined coordinatesystem by rotation angle θ around (about) the X-axis is represented bythe formula (27) expressed below. $\begin{matrix}{R = \begin{pmatrix}1 & 0 & 0 \\0 & {\cos \quad \theta} & {\sin \quad \theta} \\0 & {{- \sin}\quad \theta} & {\cos \quad \theta}\end{pmatrix}} & (27)\end{matrix}$

When sin θ=s, cos θ=c are put here for convenience of explanation,rotation matrix M is determined as indicated by the formula (28)expressed below by using the above-mentioned formulas (15) to (17).$\begin{matrix}\begin{matrix}{M = {F \times R \times E}} \\{= \begin{pmatrix}{{e^{2}c} + {h^{2}c} + x^{2}} & {{xy} + {efc} + {ejs} - {fhs} + {hjc}} & {{xz} + {egc} + {eks} - {ghs} + {hkc}} \\{{xy} + {efc} - {ejs} + {fhs} + {hjc}} & {{f^{2}c} + {j^{2}c} + y^{2}} & {{yz} + {fgc} + {fks} - {gjs} - {jkc}} \\{{xz} + {egc} - {eks} + {ghs} + {hkc}} & {{yz} + {fgc} - {fks} + {gjs} + {jkc}} & {{g^{2}c} + {k^{2}c} + z^{2}}\end{pmatrix}}\end{matrix} & (28)\end{matrix}$

When ej−fh=zA is put here to simplify the formula (28), the rotationmatrix M is as indicated by the formula (29) expressed below.$\begin{matrix}{M = \begin{pmatrix}{{\left( {1 - c} \right)x^{2}} + c} & {{\left( {1 - c} \right){xy}} + {({zA})s}} & {{\left( {1 - c} \right){xz}} + {\left( {- {yA}} \right)s}} \\{{\left( {1 - c} \right){xy}} + {\left( {- {zA}} \right)s}} & {{\left( {1 - c} \right)y^{2}} + c} & {{\left( {1 - c} \right){yz}} + {({xA})s}} \\{{\left( {1 - c} \right){xz}} + {({yA})s}} & {{\left( {1 - c} \right){yz}} + {\left( {- {xA}} \right)s}} & {{\left( {1 - c} \right)z^{2}} + c}\end{pmatrix}} & (29)\end{matrix}$

In this formula, when the orthogonal condition and the normalizationcondition of the matrices E, F are further used, A is equal to 1 (A=1).Thus, the rotation matrix M can be represented by the formula (30)expressed below. $\begin{matrix}\begin{matrix}{M = \begin{pmatrix}{{\left( {1 - c} \right)x^{2}} + c} & {{\left( {1 - c} \right){xy}} + {zs}} & {{\left( {1 - c} \right){xz}} + {ys}} \\{{\left( {1 - c} \right){xy}} - {zs}} & {{\left( {1 - c} \right)y^{2}} + c} & {{\left( {1 - c} \right){yz}} + {xs}} \\{{\left( {1 - c} \right){xz}} + {ys}} & {{\left( {1 - c} \right){yz}} - {xs}} & {{\left( {1 - c} \right)z^{2}} + c}\end{pmatrix}} \\{= \begin{pmatrix}{{\left( {1 - {\cos \quad \theta}} \right)x^{2}} + {\cos \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){xy}} + {z\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){xz}} - {y\quad \sin \quad \theta}} \\{{\left( {1 - {\cos \quad \theta}} \right){xy}} - {z\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right)y^{2}} + {\cos \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){yz}} + {x\quad \sin \quad \theta}} \\{{\left( {1 - {\cos \quad \theta}} \right){xz}} + {y\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){yz}} - {x\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right)z^{2}} + {\cos \quad \theta}}\end{pmatrix}}\end{matrix} & (30)\end{matrix}$

Further, this rotation matrix M is dissolved into angular data withrespect to respective axes of X, Y, Z. Thus, data of attitude An of theobject 31 can be obtained.

In a manner as stated above, at least three attitudes or more areinterpolated with respect to one object to thereby determine targetthree-dimensional attitude. Thus, degree of rotation operation(animation) of object is improved.

While three attitudes are interpolated in the above-describedembodiment, larger number of attitudes may be prepared to interpolatethose attitudes, thereby making it possible to more smoothly representrotation operation of object.

In addition, as transmission medium where program for carrying outprocessing as described above is caused to undergo transmission,communication medium such as network, satellite, etc. can be utilized inaddition to recording (storage) medium such as magnetic disc. CD-ROM orsolid-state memory, etc.

INDUSTRIAL APPLICABILITY

In accordance with the information processing apparatus, the informationprocessing method and the transmission medium, such an approach isemployed to select, as reference attitude, any one of prepared pluralattitudes of object to generate vectors serving as respective axes ofrotation for changing the selected reference attitude into at least twoother attitudes or more to calculate rotation angles when the object ischanged from the reference attitude to the other attitudes with thegenerated vectors being as axes of rotation to convert lengths of thevectors so as to have lengths corresponding to the rotation angles tosynthesize the vectors of which lengths have been converted to generateinterpolation vector to calculate length of the interpolation vectorthus generated to rotate the reference attitude of the object by anglecorresponding to the calculated length with the interpolation vectorbeing as rotation axis to thereby generate target attitude. Accordingly,degree of freedom of the rotation operation of object is improved, thusmaking it possible to realize more natural (smooth) change.

What is claimed is:
 1. An information processing apparatus adapted forcarrying out processing to change attitude of a predetermined objectwithin three-dimensional virtual space, the apparatus comprising:selector means for selecting, as reference attitude, any one of preparedplural attitudes of the object; first generating means for generatingvectors serving as respective rotation axes when the reference attitudeselected by the selector means is changed into at least two otherattitudes or more; first calculating means for calculating rotationangles when the object is changed from the reference attitude tocorresponding ones of the other attitudes with the vectors generated bythe first generating means being as rotation axes; converting means forconverting lengths of the vectors into lengths corresponding to therotation angles calculated by the first calculating means; secondgenerating means for synthesizing the vectors of which lengths areconverted into lengths corresponding to the rotation angles by theconverting means to generate interpolation vector; second calculatingmeans for calculating length of the interpolation vector generated bythe second generating means; and third generating means for rotating thereference attitude of the object by angle corresponding to the lengthcalculated by the second calculating means with the interpolation vectorbeing as axis of rotation to generate target interpolation attitude. 2.An information processing apparatus as set forth in claim 1, whichfurther comprises input means for inputting an input signal andmultiplying means for multiplying vectors generated by the firstgenerating means by weighting coefficients corresponding to the inputsignal inputted by the input means.
 3. An information processingapparatus as set forth in claim 1, which further comprises thirdcalculating means for calculating rotation matrix for rotating vector(x, y, z) as a predetermined rotation axis by a predetermined angle θ byusing the following formula $\begin{pmatrix}{{\left( {1 - {\cos \quad \theta}} \right)x^{2}} + {\cos \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){xy}} + {z\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){xz}} - {y\quad \sin \quad \theta}} \\{{\left( {1 - {\cos \quad \theta}} \right){xy}} - {z\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right)y^{2}} + {\cos \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){yz}} + {x\quad \sin \quad \theta}} \\{{\left( {1 - {\cos \quad \theta}} \right){xz}} + {y\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right){yz}} - {x\quad \sin \quad \theta}} & {{\left( {1 - {\cos \quad \theta}} \right)z^{2}} + {\cos \quad \theta}}\end{pmatrix}$

wherein the third generating means uses the rotation matrix calculatedby the third calculating means when the interpolation attitude isgenerated.
 4. An information processing apparatus as set forth in claim1, which further comprises fourth generating means for generating anarbitrary attitude, wherein the first generating means generates vectorsserving as respective axes of rotation when the reference attitudegenerated by the fourth generating means is changed into at least twoother attitudes or more.
 5. An information processing method forcarrying out a processing to change attitude of a predetermined objectwithin three-dimensional virtual space, the method comprising: aselection step of selecting, as reference attitude, any one of preparedplural attitudes of the object; a first generation step of generatingvectors serving as respective rotation axes when the reference attitudeselected by the selection step is changed into at least two otherattitudes or more; a first calculation step of calculating rotationangles when the object is changed from the reference attitude tocorresponding ones of the other attitudes with the vectors generated atthe first generation step being as rotation axes; a conversion step ofconverting lengths of the vectors into lengths corresponding to therotation angles calculated at the first calculation step; a secondgeneration step of synthesizing the vectors of which lengths areconverted into lengths corresponding to the rotation angles to generateinterpolation vector; a second calculation step of calculating length ofthe interpolation vector generated at the second generation step; and athird generation step of rotating the reference attitude of the objectby angle corresponding to the length calculated at the secondcalculation step with the interpolation vector being axis of rotation togenerate target interpolation attitude.
 6. A transmission medium adaptedso that computer program is caused to undergo transmission, wherein thecomputer program is used in an information processing apparatus adaptedfor carrying out a processing to change attitude of a predeterminedobject within three-dimensional virtual space, the computer programincluding; a selection step of selecting, as reference attitude, any oneof prepared plural attitudes of the object; a first generation step ofgenerating vectors serving as respective rotation axes when thereference attitude selected at the selection step is changed into atleast two other attitudes or more; a first calculation step ofcalculating rotational angles when the object is changed from thereference attitude to corresponding ones of the other attitudes with thevectors generated at the first generation step being rotation axes; aconversion step of converting lengths of the vectors into lengthscorresponding to the rotation angles calculated at the first calculationstep; a second generation step of synthesizing the vectors of whichlengths are converted into lengths corresponding to the rotation anglesat the conversion step to generate interpolation vector; a secondcalculation step of calculating length of the interpolation vectorgenerated at the second generation step; and a third generation step ofrotating the reference attitude of the object by angle corresponding tothe length calculated at the second calculation step with theinterpolation vector being as rotation axis to generate targetinterpolation attitude.